Developers may employ tracing of events generated in connection with executing applications to debug and troubleshoot the applications. In one traditional approach, function level logging can be employed to measure timing and other performance metrics for particular functions. Function level logging, though, does not provide granular information regarding different execution branches that may result for a particular task. A more sophisticated approach involves logging both start events and end events associated with particular tasks to capture semantics associated with responses to the different actions. Traditionally, however, event based logging of this type is handled separately by individual applications, which creates a proliferation of logs and formats that may be difficult to correlate.
Moreover, existing system wide event based logging infrastructure and techniques are directed to traditional statically complied applications such as C++ and C# applications (e.g., compiled languages and/or “legacy” applications that may be installed using administrative rights). As such, existing technology for event based logging may be incompatible with “modern” applications that take advantage of dynamic languages (e.g., non-compiled scripting languages) and/or corresponding runtime environments.